68 research outputs found

    Relations as a program development language

    Get PDF

    Lazy Kleene Algebra

    Get PDF
    We propose a relaxation of Kleene algebra by giving up strictness and right-distributivity of composition. This allows the subsumption of Dijkstra's computation calculus, Cohen's omega algebra and von Wright's demonic refinement algebra. Moreover, by adding domain and codomain operators we can also incorporate modal operators. Finally, it is shown that the predicate transformers form lazy Kleene algebras again, the disjunctive and conjunctive ones even lazy Kleene algebras with an omega operation

    Modal Kleene algebra and applications - a survey

    Get PDF
    Modal Kleene algebras are Kleene algebras with forward and backward modal operators defined via domain and codomain operations. They provide a concise and convenient algebraic framework that subsumes various other calculi and allows treating quite a variety of areas. We survey the basic theory and some prominent applications. These include, on the system semantics side, Hoare logic and PDL (Propositional Dynamic Logic), wp calculus and predicate transformer semantics, temporal logics and termination analysis of rewrite and state transition systems. On the derivation side we apply the framework to game analysis and greedy-like algorithms

    Systematic derivation of pointer algorithms

    Get PDF
    We show that the well-known unfold/fold transformation strategy also is fruitful for the(formal) derivation of correct pointer algorithms. The key that allows this extension is the algebra of partial maps which allows convenient description and manipulation of pointer structures at the functional level

    Assertions and recursions

    Get PDF
    We provide an algebraic description of subtypes and the way they propagate through recursive functions. By abstracting from the concrete domain of functions or relations we obtain a framework which is independent of strict or non-strict, deterministic or non-deterministic semantics. Applications include efficiency increasing simplification of recursions as well as proofs about recursions by noetherian induction, such as termination proofs

    Ideal stream algebra

    Get PDF
    We provide some mathematical properties of behaviours of systems, where the individual elements of a behaviour are modeled by ideals, ie. downward closed directed subsets of a suitable partial order. It is well-known that the associated ideal completion provides a simple way of constructing algebraic cpos. An ideal can be viewed as a set of consistent finite or compact approximations of an object which itself may be infinite. A special case is the domain of streams where the finite approximations are the finite prefixes of a stream. We introduce a special way of characterising behaviours through sets of relevant approximations. This is a generalisation of the technique we have used earlier for the case of streams. Given a subset P of a partially orderered set M, we define ide P as the set of downward closures of the directed subsets of P. We prove a number of distributivity and monotonicity laws for ide and related operators. They are the basis for correct refinement of specifications into implementations. Various small examples illustrate that the operators lead to very concise while quite clear specifications. Finally, we give a characterisation of safety and liveness and generalise the Alpern/Schneider decomposition lemma to arbitrary domains. An extended example concerns the specification and transformational development of an asynchronous bounded queue

    Towards pointer algebra

    Get PDF
    We show that the well-known unfold/fold transformation strategy is also fruitful for the (formal) derivation of correct pointer algorithms. The key to this extension is an algebra of partial maps which allows convenient description and manipulation of pointer structures at the functional level

    Formal derivation of pointer algorithms

    Get PDF
    We show that the well-known unfold/fold transformation strategy also is fruitful for the (formal) derivation of correct pointer algorithms. The key that allows this extension is the algebra of partial maps which allows convenient description and manipulation of pointer structures at the functional level

    Are anamorphisms reasonable abstractions?

    Get PDF
    In calculational derivations of pointer algorithms the concept of a reasonable abstraction function has proved to be of centralimportance. A function from pointer structures to some other domain is called reasonable if it only depends on the reachable part of the store. For reasonable functions we can reduce questions about invariance of certain parts of objects to an analysis of (non-)reachability in the pointer structure. In this way we can prove a number of transformation laws once and for all for all types of pointer structures. In the present paper we show that all abstraction functions with an anamorphic recursive definitionare reasonable, so that our laws apply for them. The approach copes also with cyclic strctures; among others, we give abstraction functionsfor cyclic lists and threaded trees. By tuning the degree of abstraction we can give simple specifications for routines that are to update pointer structures in situ

    Deductive hardware design: a functional approach

    Get PDF
    The goal of deductive design is the systematic construction of a system implementation starting from its behavioural specification according to formal, provably correct rules. We use Haskell to formulate a functional model of directional, synchronous and deterministic systems with discrete time. The associated algebraic laws are then employed in deductive hardware design of basic combinational and sequential circuits as well as a brief account of pipelining. With this we tackle several of the IFIP WG 10.5 benchmark verification problems. Special emphasis is laid on parametrization and re-usability aspects
    • …
    corecore